package com.example.micro_property_springboot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.micro_property_springboot.entity.SysNotificationSetting;
import com.example.micro_property_springboot.pojo.vo.NotificationSettingVO;

import java.util.List;

/**
 * 系统通知设置服务接口
 * 提供通知设置的业务逻辑方法
 */
public interface SysNotificationSettingService extends IService<SysNotificationSetting> {
    
    /**
     * 根据用户ID获取通知设置
     */
    List<SysNotificationSetting> getByUserId(Long userId);
    
    /**
     * 保存或更新用户的通知设置
     */
    boolean saveOrUpdateSetting(NotificationSettingVO settingVO);
    
    /**
     * 批量保存用户的通知设置
     */
    boolean batchSaveSettings(List<NotificationSettingVO> settingVOs);
    
    /**
     * 获取用户对特定事件的启用通知方式
     */
    List<SysNotificationSetting> getEnabledSettingsByEvent(Long userId, String eventType);
    
    /**
     * 初始化用户默认通知设置
     */
    void initDefaultSettings(Long userId);
}